package 反射;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

/**
 * description:
 *
 * @author yzm
 * @date 2024/4/7  10:15
 */
public class ReflectTest {
    public static void main(String[] args) throws Exception {

        // 1、获取类的 Class 对象实例
        Class reflectBase = Class.forName("反射.ReflectBase");

        // 2、getMethod
        Method method1 = reflectBase.getMethod("test1");

        // 3、根据class对象实例的getConstructor方法获取Constructor对象
        Constructor reflectBaseConstructor = reflectBase.getConstructor();

        // 4、使用constructor对象的newInstance方法获取反射类对象实例
        Object newInstance = reflectBaseConstructor.newInstance();

        // 5、利用invoke方法调用方法
        method1.invoke(newInstance);

        // 6、获取方法的method对象
        Method getName = reflectBase.getMethod("test2");

        System.out.println(getName.invoke(newInstance));

    }
}
